package com.zkthink.ceres.product.dto;

import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.zkthink.base.entity.Entity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 商品分类表
 * </p>
 *
 * @author JustArgo
 * @since 2020-05-19
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "ProductCategoryPageDTO", description = "商品分类表")
public class ProductCategoryPageDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 类目简称
     */
    @ApiModelProperty(value = "类目简称")
    @Length(max = 10, message = "类目简称长度不能超过10")
    private String shortName;
    /**
     * 类目名称
     */
    @ApiModelProperty(value = "类目名称")
    @Length(max = 30, message = "类目名称长度不能超过30")
    private String categoryName;
    /**
     * 类目关联页面路径
     */
    @ApiModelProperty(value = "类目关联页面路径")
    @Length(max = 250, message = "类目关联页面路径长度不能超过250")
    private String categoryPath;
    /**
     * 分类图片，目前只有3级类目才有图片
     */
    @ApiModelProperty(value = "分类图片，目前只有3级类目才有图片")
    @Length(max = 255, message = "分类图片，目前只有3级类目才有图片长度不能超过255")
    private String categoryImg;
    /**
     * 层级
     */
    @ApiModelProperty(value = "层级")
    private Integer depth;
    /**
     * 父类名称
     */
    @ApiModelProperty(value = "父类名称")
    @Length(max = 30, message = "父类名称长度不能超过30")
    private String parentName;
    /**
     * 父类id
     */
    @ApiModelProperty(value = "父类id")
    private Long parentId;
    /**
     * 排序值
     */
    @ApiModelProperty(value = "排序值")
    private Integer sortOrder;
    /**
     * 状态：1-启用 0-删除
     */
    @ApiModelProperty(value = "状态：1-启用 0-删除")
    private Integer status;
    /**
     * 逻辑删除 1-删除 0-未删除
     */
    @ApiModelProperty(value = "逻辑删除 1-删除 0-未删除")
    @NotNull(message = "逻辑删除 1-删除 0-未删除不能为空")
    private Integer isDelete;

}
